<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
    <th:block th:include="include :: header('API接口文档-发起支付')" />
</head>


<body class="front">
<!-- scrollToTop -->
<!-- ================ -->
<div class="scrollToTop"><i class="icon-up-open-big"></i></div>

<!-- page wrapper start -->
<!-- ================ -->
<div class="page-wrapper">

    <!-- main start -->

    <!-- page-intro start-->
    <!-- ================ -->
    <div class="page-intro">
        <div class="container">
            <div class="row">
                <div class="col-md-12">
                    <ol class="breadcrumb">
                        <li><i class="fa fa-home pr-10"></i><a href="../../index.html">首页</a></li>
                        <li>API接入文档</li>
                        <li class="active">发起付款接口</li>
                    </ol>
                </div>
            </div>
        </div>
    </div>
    <!-- page-intro end -->
    <!-- main-container start -->
    <!-- ================ -->
    <section class="main-container">

        <div class="container">
            <div class="row">

                <!-- sidebar start -->
                <aside class="col-md-3">
                    <div class="sidebar">
                        <div class="block clearfix">
                            <h3 class="title">API接入文档</h3>
                            <div class="separator"></div>
                            <nav>
                                <ul class="nav nav-pills nav-stacked">
                                    <li class="active"><a href="pay.html">发起付款接口</a></li>
                                    <li class=""><a href="search.html">查询接口</a></li>
                                </ul>
                            </nav>
                        </div>
                    </div>
                </aside>        <!-- sidebar end -->

                <!-- main start -->
                <!-- ================ -->
                <div class="main col-md-9">

                    <!-- page-title start -->
                    <!-- ================ -->
                    <h4 class="page-title">发起付款接口(必用接口)</h4>
                    <hr>
                    <!--<h5>SDK Demo下载<h5>
                    &lt;!&ndash;<p><a class="btn btn-danger" href="http://download.aryapay.com/apk/sdk-php-v1.0.0.zip">PHP SDK(utf-8)</a> <a class="btn btn-danger" href="http://download.aryapay.com/apk/xunhupay-java-demo.zip">JAVA SDK(utf-8)</a> <a class="btn btn-danger" href="http://download.aryapay.com/apk/hupijiao-aps.net.zip">ASP.NET SDK(utf-8)</a></p>&ndash;&gt;
                    <hr>-->
                    <!-- page-title end -->
                    <h5>接口URL：</h5>
                    <pre><span name="curHost"></span>/api/v1/charges</pre>
                    <h5>传参方式：Post表单</h5>
                    <h5>请求参数：</h5>
                    <table class="table table-striped table-bordered">
                        <thead>
                        <tr>
                            <th width="">#</th>
                            <th>参数名</th>
                            <th width="19%">含义</th>
                            <th width="10%">类型</th>
                            <th width="8%">必填</th>
                            <th>说明</th>
                        </tr>
                        </thead>
                        <tbody>

                        <tr>
                            <td>1</td>
                            <td><small>uid</small></td>
                            <td><small>商户uid</small></td>
                            <td><small>string</small></td>
                            <td><b><small>必填</small></b></td>
                            <td><small>您的商户唯一标识，注册后在设置里获得。</small></td>
                        </tr>

                        <tr>
                            <td>2</td>
                            <td><small>money</small></td>
                            <td><small>订单金额</small></td>
                            <td><small>string</small></td>
                            <td><b><small>必填</small></b></td>
                            <td><small>单位：元。精确小数点后2位。例：1021.16</small></td>
                        </tr>

                        <tr>
                            <td>3</td>
                            <td><small>channelType</small></td>
                            <td><small>支付通道类型</small></td>
                            <td><small>string</small></td>
                            <td><b><small>必填</small></b></td>
                            <td><small>固定值：alipay、wechat或unionpay</small></td>
                        </tr>

                        <tr>
                            <td>4</td>
                            <td><small>channel</small></td>
                            <td><small>支付通道编码</small></td>
                            <td><small>string</small></td>
                            <td><small>选填</small></td>
                            <td><small>指定支付通道编码。不传该参数则平台会自动选择可用通道。</small></td>
                        </tr>

                        <tr>
                            <td>5</td>
                            <td><small>outTradeNo</small></td>
                            <td><small>商户订单号</small></td>
                            <td><small>string</small></td>
                            <td><b><small>必填</small></b></td>
                            <td><small>您的唯一订单ID，必须全局唯一。</small></td>
                        </tr>

                        <tr>
                            <td>6</td>
                            <td><small>notifyUrl</small></td>
                            <td><small>通知回调网址</small></td>
                            <td><small>string</small></td>
                            <td><b><small>必填</small></b></td>
                            <td><small>用户支付成功后，我们会将支付成功消息以POST请求发送给这个网址。不要urlencode。例：http://www.aaa.com/paysucc_notify</small></td>
                        </tr>

                        <tr>
                            <td>7</td>
                            <td><small>returnUrl</small></td>
                            <td><small>跳转网址</small></td>
                            <td><small>string</small></td>
                            <td><b><small>必填</small></b></td>
                            <td><small>用户支付成功后，我们会让用户浏览器自动跳转到这个网址。由您自定义。不要urlencode。例：http://www.aaa.com/paysucc_return</small></td>
                        </tr>

                        <tr>
                            <td>8</td>
                            <td><small>goodsName</small></td>
                            <td><small>商品名称</small></td>
                            <td><small>string</small></td>
                            <td><small>选填</small></td>
                            <td><small>您的商品名称，可以用来统计商品销售情况。</small></td>
                        </tr>


                        <tr>
                            <td>9</td>
                            <td><small>outUserId</small></td>
                            <td><small>付款用户id</small></td>
                            <td><small>string</small></td>
                            <td><small>选填</small></td>
                            <td><small>我们会显示在您后台的订单列表中，方便您看到是哪个用户的付款，方便后台对账。强烈建议填写。可以填用户名，也可以填您数据库中的用户uid。例：xxx, xxx@aaa.com</small></td>
                        </tr>



                        <tr>
                            <td>10</td>
                            <td><small>outBody</small></td>
                            <td><small>订单附加信息</small></td>
                            <td><small>string</small></td>
                            <td><small>选填</small></td>
                            <td><small>商户给该笔订单的附加信息，我们会在付款成功回调的时候原样返回。可以用来实现灵活的业务控制</small></td>
                        </tr>

                        <tr>
                            <td>11</td>
                            <td><small>timestamp</small></td>
                            <td><small>系统时间戳</small></td>
                            <td><small>string</small></td>
                            <td><b><small>必填</small></b></td>
                            <td><small>当前系统时间戳（单位毫秒）</small></td>
                        </tr>

                        <tr>
                            <td>12</td>
                            <td><small>sign</small></td>
                            <td><small>签名</small></td>
                            <td><small>string</small></td>
                            <td><b><small>必填</small></b></td>
                            <td><small>签名参数。把使用到的所有参数（sign本身和路径path参数除外）连同参数token一起，按参数名字母升序排序。然后按key1=value1&key2=value2形式拼接在一起。最后md5-32位加密取字符串大写得到sign参数字符串。注意不要urlencode</small></td>
                        </tr>

                        </tbody>
                    </table>
                    <p class="text-danger"><strong>注意：token在安全上非常重要，一定不要显示在任何网页代码、网址参数中。只可以放在服务端。计算sign时，先在服务端计算好，把计算出来的sign传出来。严禁在客户端计算sign，严禁在客户端存储token。</strong></p>

                    <h5>SIGN参数签名的步骤如下：</h5>
                    <p>第一步，设所有发送或者接收到的数据为集合M，将集合M内非空参数值的参数按照参数名ASCII码从小到大排序（字典序），使用URL键值对的格式（即key1=value1&amp;key2=value2…）拼接成字符串stringA。 </p>
                    <p>特别注意以下重要规则： </p>
                    <ul class="mb10">
                        <li>参数token参与计算签名时要一起按字典排序而不是直接加在最后面；</li>
                        <li>参数名ASCII码从小到大排序（字典升序）；</li>
                        <li>网址类型的参数注意不要urlencode编码；</li>
                        <li>参数名区分大小写；</li>
                        <li>接口URL路径上的path参数不要参与签名；</li>
                    </ul>
                    <p>第二步，对stringA进行<code>MD5 32位大写计算</code>，得到sign值。</p>

                    <p>参与签名计算参数示例：</p>

                    <pre>channelType=alipay&amp;goodsName=测试&amp;money=0.01&amp;notifyUrl=http://www.xxxx.com/test/notify&amp;outTradeNo=APP38921464&amp;outUserId=app&amp;returnUrl=http://www.xxxx.com/payResult.html&amp;timestamp=1570725970166&amp;token=095673886f0742d7a4be46bb3cd3bd57&amp;uid=389215243663812608
			</pre>


                    <h5>响应参数：</h5>
                    <table class="table table-striped table-bordered">
                        <thead>
                        <tr>
                            <th width="">#</th>
                            <th>参数名</th>
                            <th width="19%">含义</th>
                            <th width="10%">类型</th>
                            <th>说明</th>
                        </tr>
                        </thead>
                        <tbody>

                        <tr>
                            <td>1</td>
                            <td><small>code</small></td>
                            <td><small>返回码</small></td>
                            <td><small>int(32)</small></td>
                            <td><small>0表示接口调用正常。非0表示异常</small></td>
                        </tr>

                        <tr>
                            <td>2</td>
                            <td><small>msg</small></td>
                            <td><small>提示信息</small></td>
                            <td><small>int(32)</small></td>
                            <td><small>对应返回码code的提示信息。</small></td>
                        </tr>

                        <tr>
                            <td>3</td>
                            <td><small>timestamp</small></td>
                            <td><small>时间戳</small></td>
                            <td><small>int(64)</small></td>
                            <td><small>服务器时间戳，可用来校时。</small></td>
                        </tr>

                        <tr>
                            <td>4</td>
                            <td><small>version</small></td>
                            <td><small>接口版本</small></td>
                            <td><small>string</small></td>
                            <td><small>用途暂时保留</small></td>
                        </tr>

                        <tr>
                            <td>5</td>
                            <td><small>data</small></td>
                            <td><small>数据对象</small></td>
                            <td><small>object</small></td>
                            <td><small></small></td>
                        </tr>

                        </tbody>
                    </table>

                    <h5>请求成功时返回示例：</h5>
                    <pre>{
  "code": 0,
  "msg": "调用成功。",
  "timestamp": "1555040027820",
  "version": "1.0",
  "data": {
	// 通道类型
    "channelType": "alipay",
	// 通道名称
    "channel": "alipay_hb",
	// 订单金额。单位：元。精确小数点后2位。例：1030.00
    "money": "0.01",
	// 用户实际需要支付的金额。单位：元。精确小数点后2位。例：1021.16
    "realMoney": "0.01",
	// 平台返回的订单号
    "tradeNo": "323232553241366528",
	// 商户自己的唯一订单号
    "outTradeNo": "APP323232553119731712",
	// 订单状态：1待支付，2支付成功，3已关闭
    "status": 2,
	// 支付地址。商户需要展示该地址给付款用户
    "payUrl": "https://www.xxxx.com/payment.html?p=DgLlHVQqblKNh242vXDGU/14wY72CQlB6Kjq7+kcTaWTrRBr/7AwjoPawz9fqO1v6yw&t=alipay",
    // 付款二维码图片地址。
	"qrcodeUrl": "https://www.xxxx.com/upload/qrcode/d58ecb9bf1734967a7e124f6605d59cfac.jpg",
	// 付款二维码图片内容。
    "qrcodeContent": "https://www.xxxx.com//pay/v1/go_pay?p=DgLlHVQqblKNh75643vXDGU/14wY72CQlB6Kjq7+kcTaWTrRBr/7AwjoPawz9fqO1v6yw&t=alipay",
    // 是否支付成功
	"paySucc": true,
    // 是否回调成功
	"notifySucc": true,
    // 订单有效截止时间yyyy-MM-dd HH:mm:ss，超出无法支付。默认5分钟
	"validTime": "2019-04-11 23:00:46",
    // 订单有效截止时间戳（毫秒），超出无法支付。默认5分钟
	"validTimeMills": "1554994846000"
  }
}</pre>
                    <h5>请求失败时返回示例：</h5>
                    <pre>{
  "code": 1012,
  "msg": "通道不存在或者不可用。",
  "data": null,
  "timestamp": "1554210357457",
  "version": "1.0"
}</pre>
                    <div class="space-bottom"></div>
                    <div class="space-bottom"></div>
                    <!-- page-title start -->
                    <!-- ================ -->
                    <h4 class="page-title">付款成功回调通知</h4>
                    <hr>
                    <!-- page-title end -->

                    <p>用户付款成功后，我们会向您在发起付款接口传入的<code>notify_url</code>网址发送通知。您的服务器只要返回内容：<code>SUCCESS</code><b>（注意是大写）</b>，就表示回调已收到。如果返回内容不是<code>SUCCESS</code>，我们会在10分钟内尝试回调3次。</p>
                    <p>即使在3次回调仍然失败的情况下，您还可以通过查询订单接口来获取支付状态后进行相应补单业务。</p>
                    <h5>传参方式：Post表单</h5>
                    <h5>参数内容：</h5>
                    <table class="table table-striped table-bordered">
                        <thead>
                        <tr>
                            <th>#</th>
                            <th>参数名</th>
                            <th>含义</th>
                            <th>类型</th>
                            <th>是否必填</th>
                            <th>说明</th>
                        </tr>
                        </thead>
                        <tbody>
                        <tr>
                            <td>1</td>
                            <td><small>channel</small></td>
                            <td><small>支付通道编码</small></td>
                            <td><small>string</small></td>
                            <td><b><small>必填</small></b></td>
                            <td><small>商户下单时的支付通道编码</small></td>

                        </tr>
                        <tr>
                            <td>2</td>
                            <td><small>tradeNo</small></td>
                            <td><small>平台订单号</small></td>
                            <td><small>string</small></td>
                            <td><b><small>必填</small></b></td>
                            <td><small>订单支付金额</small></td>
                        </tr>
                        <tr>
                            <td>3</td>
                            <td><small>outTradeNo</small></td>
                            <td><small>商户自己的订单号</small></td>
                            <td><small>string</small></td>
                            <td><b><small>必填</small></b></td>
                            <td><small>商户下单时的私有唯一订单号</small></td>
                        </tr>
                        <tr>
                            <td>4</td>
                            <td><small>money</small></td>
                            <td><small>订单金额</small></td>
                            <td><small>string</small></td>
                            <td><b><small>必填</small></b></td>
                            <td><small>单位元。商户下单时的金额</small></td>
                        </tr>
                        <tr>
                            <td>5</td>
                            <td><small>realMoney</small></td>
                            <td><small>实际订单金额</small></td>
                            <td><small>string</small></td>
                            <td><b><small>必填</small></b></td>
                            <td><small>单位元。</small></td>
                        </tr>
                        <tr>
                            <td>6</td>
                            <td><small>uid</small></td>
                            <td><small>对应商户uid</small></td>
                            <td><small>string</small></td>
                            <td><b><small>必填</small></b></td>
                            <td><small></small></td>
                        </tr>
                        <tr>
                            <td>7</td>
                            <td><small>outUserId</small></td>
                            <td><small>商户下单时传的自己用户id</small></td>
                            <td><small>string</small></td>
                            <td><b><small>否</small></b></td>
                            <td><small></small></td>
                        </tr>
                        <tr>
                            <td>8</td>
                            <td><small>outBody</small></td>
                            <td><small>商户下单时传的附加信息</small></td>
                            <td><small>string</small></td>
                            <td><b><small>否</small></b></td>
                            <td><small></small></td>
                        </tr>
                        <tr>
                            <td>9</td>
                            <td><small>sign</small></td>
                            <td><small>签名</small></td>
                            <td><small>string</small></td>
                            <td><b><small>否</small></b></td>
                            <td><small>签名算法同上。注意有些参数可能没有，比如outBody。所以请获取所有POST参数进行签名（除了sign字段本身）</small></td>
                        </tr>
                        </tbody>
                    </table>

                    <div class="space-bottom"></div>
                    <div class="space-bottom"></div>
                    <!-- page-title start -->
                    <!-- ================ -->
                    <h4 class="page-title">付款成功自动跳转</h4>
                    <hr>
                    <!-- page-title end -->

                    <p>用户付款成功后，我们会先通过调用您下单时填入的<code>notifyUrl</code>接口，通知您服务器付款成功，然后引导用户跳转到<code>returnUrl</code>网址。</p>

                    <div class="space-bottom"></div>
                    <div class="space-bottom"></div>
                </div>
                <!-- main end -->

            </div>
        </div>
    </section>
</div>
<!-- 客服 -->
<style>/* 客服 */
.contact {
    top: 200px;
    z-index: 10;
    padding-bottom: 10px;
    width: 120px;
    background-color: #fff;
    box-shadow: 0 0 4px rgba(0,0,0,.2);
    position: fixed;
}
.contact.left-contact {
    left: -1px;
    border-top-right-radius: 4px;
    border-bottom-right-radius: 4px;
}
.contact.right-contact {
    right: -1px;
    border-top-left-radius: 4px;
    border-bottom-left-radius: 4px;
}
.contact-pic {
    width: 60px;
    height: 60px;
    margin-top: -32px;
    border: 2px solid #ff4e54;
    background: #e4e2ef url(https://www.wpweixin.net/wp-content/themes/xh-weixin/images/32-1103231q54422.png) 50% 30% no-repeat;
    border-radius: 50%;
    display: block;
    margin-left: auto;
    margin-right: auto;
}
.contact-time {
    margin-top: 10px;
    margin-bottom: 10px;
    font-size: 12px;
    color: #aaa;
}
.contact-list{margin:0;padding: 0}
.contact-list > li {
    margin-bottom: 10px;
    text-align: center;
    list-style: none;
    margin-left: 0;
}
.contact-list > li > a {
    display: inline-block;
    width: 100px;
    height: 30px;
    line-height: 30px;
    font-size: 14px;
    text-align: center;
    color: #fff;
    background-color: #ff4e54;
    border-radius: 2px;
}
.contact-list > li > a > img {
    position: relative;
    top: 3px;
    display: inline-block;
    width: 13px;
    margin-right:5px;
}
.contact-wechat {
    width: 120px;
    height: 120px;
}
.wechat-text {
    font-size: 12px;
    color: #aaa;
    margin-bottom: 5px;
}
</style>

<!--This page loaded in 0.021 seconds with 0 database queries.-->
</body>
</html>
